This invention relates to the transfer of information between communication devices, and more particularly to control of the rate at which information is serially transferred between communication devices.
In an asychronous mode of transmission, groups of bits are transmitted on an individual basis, one bit at a time, at a preselected rate of transmission. The preselected rate of transmission must of course be known by both the transmitting and receiving apparatus. The receiving apparatus synchronizes with the transmitting apparatus on receipt of the first bit of each group of bits received. Thereafter, the state of the transmission channel is sampled at regular intervals to determine the state of each transmitted bit. The sampling interval is defined by the preselected rate of transmission.
The asychronous transmission of information typically operates in the following manner. A transmission channel generally may only assume one of two possible states, hereinafter referred to as a marking or spacing state. During an idle condition, i.e., when information is not being transmitted, the transmission channel is held in one of the two states, typically the marking state. When the transmitting apparatus begins the transmission of a group of bits, it must indicate such to the receiving apparatus, thereby allowing the receiving apparatus to synchronize thereto. This is accomplished by the transmitting apparatus sending a "start bit". The start bit functions to change the state of the transmission channel, i.e., from the marking to the spacing state. This serves to notify the receiving apparatus that information will follow, i.e., a group of bits will follow in a sequential fashion. When the receiving apparatus detects the change in state of the transmission channel, i.e., the occurrence of a start bit, it thereafter begins measuring intervals of time equal to the time for transmission of a single bit, and at the expiration of each of such intervals, determines the state of the transmission channel. In this manner, the receiving apparatus may determine the state of the bits which are transmitted.
While the foregoing broadly describes the asychronous transmission process, there are a number of considerations associated therewith. In particular, at the conclusion of the transmission of a group of bits, the transmission channel must be again returned to the idle state, i.e., the marking state. As the state of the last bit of the group of bits transmitted may or may not correspond to the desired idle state, e.g., the marking state, it is necessary to transmit an additional bit to ensure that the transmission channel is in fact returned to the desired idle state. This bit is referred to as a "stop bit".
Consequently, it is observed that each group of bits transmitted has associated therewith a start bit and a stop bit. Further additional bits may be included, e.g. a parity bit, as required by a particular application.
From the foregoing discussion, a number of significant considerations follow. First, the rate of transmission, i.e., frequency, defines the time period between the transmission of successive bits contained within a group of bits. As the time periods are measured by the receiving apparatus in a sequential fashion, beginning with the detection of the start bit, any difference in frequencies between the transmitting and receiving apparatus accumulates with the occurrence of each successive time period. As this time period is used to determine the time at which the state of the transmission channel is to be sensed by the receiving apparatus, a limitation exists on the number of time periods which may occur, i.e. the number of bits which may be transmitted, and correctly sensed by the receiving apparatus. As a practical matter there will typically be a finite difference between the frequency at which the transmitting and receiving apparatus operate. Consequently there will be a limit on the number of bits which may be successfully transferred between the transmitting and receiving apparatus before a cumulative error operates to effect the incorrect reading of information by the receiving apparatus. By way of illustration, assuming the transmitting apparatus is operating at a frequency which is 5% higher than the preselected frequency of transmission, and the receiving apparatus is operating at a frequency which is 5% lower than the preselected frequency, a total difference in frequency of 10% will exist between the transmitting and receiving apparatus. Consequently, subsequent to the receipt of a start bit, the receiving apparatus will determine the state of the transmission channel for the first bit at a point in time 10% later than expected. In a similar fashion, the receiving apparatus will determine the state of the transmission channel at a point 10% later than expected for the second bit, which is a total of 20% later with respect to the point in time indicated by the start bit. By the time a tenth bit i transmitted, the receiving apparatus will determine the state of the transmission channel at a point in time 100% later than expected, i.e., when the receiving apparatus is expecting to be determining the state of the transmission channel for the 10th bit, the transmission channel will in fact be transmitting the 11th bit. This will result in an error condition. Consequently, it is observed that a difference in frequencies between the transmitting and receiving apparatus operates in a cumulative fashion to limit the number of bits which may be successfully transmitted. It is therefore necessary in the asychronous method of transmission to re-synchronize the transmitting and receiving apparatus for each group of bits which are transmitted. This is accomplished by the occurrence of the start bit.
As the receiving apparatus is aware of the expected number of bits in each group of bits transmitted, and further expects the transmission channel to be returned to the idle condition subsequent to the transmission of the last bit within each group of bits, the receiving apparatus may check for the occurrence of the idle condition of the transmission channel, i.e., the stop bit. If the transmission channel is not in the expected idle condition subsequent to the receipt of the last bit of a group of bits, i.e., the marking state, then the receiving apparatus has an indication that an error condition exists.
As a practical matter, there will generally be a finite amount of error between the frequencies of the transmitting and receiving apparatus. As a consequence thereof, the length of the stop bit is frequently adjustable to accommodate for the aforedescribed potential difference in frequencies. While the amount by which the length of the stop bit may be adjusted varies among devices, lengths of 1, 1.5 and 2 bit periods are customary. As the minimum length of the required stop bit is directly determined by the difference in reference frequencies used by the respective transmitting and receiving apparatus, shorter length stop bits may be employed when the respective reference frequencies of the transmitting and receiving apparatus are closely matched. By employing stop bits of shorter length, an increase in the effective rate of transmission may be achieved.
In the past an approach based upon reducing the number of stop bits transmitted between successive characters by fractional amounts has been employed in attempts to shorten transmission times. In particular, the Model SCN2681 Dual Asychronous Receiver/Transmitter manufactured by Signetics Corporation of Sunnyvale, Calif., provides for the selection of 1, 1.5 or 2 stop bits in 1/16 bit increments. By employing such a technique, the amount of idle time between successive characters may be reduced to a minimal amount. Consequently, a higher effective transmission rate may be achieved by decreasing, in fractional amounts, the length of stop bits transmitted between successive characters.
In addition to the foregoing, there is a further practical consideration. Once the transmitting apparatus has begun the transmission of information, the receiving apparatus must be capable of continuously accepting the information as it arrives. However, it is generally necessary for the receiving apparatus to perform tasks with the information as it is received, e.g., storing the information received for subsequent use, or performing various processing thereon. Consequently, the receiving apparatus must have sufficient time not only to handle the receipt of information, but also to perform associated tasks. If the time required for the associated tasks is greater than the time between groups of bits received, a problem results. In particular, the receiving apparatus must either discontinue the performance of the associated tasks to handle the receipt of additional information, or delay the handling of the receipt of additional information until the previous tasks have been completed. However, as information is typically arriving on a continuous basis, a delay in the handling of the receipt thereof could result in loss of such information. This problem has been addressed in the past in a number of ways.
One method which has been used to allow receiving apparatus greater time to process information has been in reducing the rate at which information is transmitted by the transmitting apparatus. While in principle this appears to be a simple and direct approach, practical considerations operate to limit the efficiency of such an approach. In particular, typical devices used for the transmission and receipt of information generally have a number of transmission rates which may be selected from. The transmission rates generally include a fundamental rate which is relatively slow. Other rates of transmission which are multiples of the fundamental rate are also available. By way of illustration, if a fundamental rate of 300 bits per second is available in such a device, other rates would typically include 600, 1200, 2400, 4800 and 9600 bits per second. Consequently when it is desirable to reduce the rate of transmission, the available frequencies to choose from are somewhat limited. In addition, generally speaking, there is a considerable difference between the choice of transmission rates. Again by way of illustration, if there is insufficient time for receiving apparatus to process received information when information is transmitted to it at a rate of 9600 bits per second, the next available frequency is typically 4800 bits per second, i.e., half the previous transmission rate. This is a significant reduction in speed, and can result in the inefficient operation of receiving apparatus.
In a different approach, the frequency of the receiving and transmitting apparatus may be individually adjusted to any selected rate. However, this generally requires specialized equipment for both the transmitting and receiving apparatus, and further introduces a number of additional problems. In particular, there must exist a means of communicating a new frequency of transmission between the transmitting and receiving apparatus so that both may adjust accordingly. In addition, as any difference in frequencies between transmitting and receiving apparatus operates in a cumulative fashion to affect the sensing of transmitted information by the receiving apparatus as previously discussed, both the transmitting and receiving apparatus must be capable of adjusting to the newly selected frequency in a highly accurate manner. As a practical matter, such an approach is generally not economically feasible.
In an alternate approach, information is transferred between a transmitting and a receiving apparatus in blocks of preselected size, e.g., 1024 8-bit characters. In particular, a transmitting apparatus transmits a first block of characters, and at the conclusion of such transmission appends a preselected control character to the end thereof, e.g., the ASCII character ETX. The appended character serves to indicate to the receiving apparatus the end of a block of information. Thereafter, when the receiving apparatus is ready to receive the next block of information, the receiving apparatus indicates such to the transmitting apparatus by a sending a preselected control character to the transmitting apparatus, e.g., the ASCII character ACK. Consequently, by grouping information into blocks of a preselected size and using associated control characters, some control over the rate at which information is transferred between a transmitting and receiving apparatus may be achieved. However, in the foregoing described process, it is observed that once transmission of a block of characters has begun, the transfer proceeds at the full rate of channel communication. In particular, the receiving apparatus cannot suspend a transfer once it has begun, and must be capable of continuously receiving all of the characters in the block.
In yet another alternate approach, the receiving apparatus may request the transmitting apparatus to temporarily suspend transmission of information at any point during a transmission process. In the ASCII protocol, two special characters are typically employed to accomplish this function, i.e., DC1 and DC3. In particular, when receiving apparatus is becoming busy and is having difficulty in keeping up with newly received information, the receiving apparatus may request the transmitting apparatus to suspend further transmission of information by transmitting the ASCII character of DC3 to the transmitting apparatus. Upon receipt of the DC3 character, the transmitting apparatus will suspend further transmission of information. When the receiving apparatus is again ready to receive further characters, it may request the resumption of the transmission of information by sending the transmitting apparatus the ASCII character of DC1.
While such an approach has been widely used in the past, there are a number of problems associated therewith. In particular, it is necessary that the communications channel be capable of supporting simultaneous transmission in both directions between the transmitting and receiving apparatus. In addition, a finite amount of time is required to effect the suspension of transmission, i.e., between the issuing of the DC3 character by the receiving apparatus, and the suspension of the transmission by the transmitting apparatus. Consequently, such a technique does not effect the immediate suspension of transmission. In addition, the receiving and transmitting apparatus must be capable of performing such tasks simultaneously with the information exchange process. While such an approach does have the advantage of not requiring a change in the frequency of transmission, it nevertheless does have a number of potential problems associated therewith.
In still another alternate approach, control signals may be associated with the information channel to provide control over the transmission of information. By way of illustration, in the RS-232 standard, there are a number of control signals associated with a communication channel, including Request to Send, Clear to Send, Data Set Ready, Data Terminal Ready and Carrier Detect. While these control signals may be used in a wide variety of ways to provide effective control over the transmission of information, such an approach generally further complicates the transmission process, as well as requiring additional hardware which can have an undesirable impact on price sensitive designs.
There is consequently a need for a method and apparatus which provides direct control over the rate at which information is transmitted over a serial communication channel. It is particularly desirable to have the ability to exercise said control without the necessity of changing transmission frequencies, i.e., baud rates, employing preselected control codes, or using dedicated hardware apparatus to generate associated control signals. In addition, it is further desirable to have the capability of exercising said control over a wide range of effective transmission rates.